#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
	char str[10][1000];
	
	int r, c;
	scanf("%d%d", &r, &c);
	int n = r;
	int i = 0;
	while (n--)
	{
		scanf("%s", str[i]);
		i++;
	}
	int j,k;
	int flag = 0;
	int count = 0;
	for (i = 0; i < r; i++)
	{
		for (k = i + 1; k < r; k++)
		{
			for(j=0;j<c;j++)
			{
				if (str[i][j] != str[k][j])
				{
					break;
				}
				if (j == c - 1)
				{
					flag = 1;
					count++;
					break;
				}
			}
			if (flag == 1)
			{
				break;
			}
		}
	}
	printf("%d", count);
	return 0;
}
//
//int main()
//{
//	char ch1;
//	scanf("%c", &ch1);
//	switch (ch1)
//	{
//	case 'A':
//		printf("[90-100]");
//		break;
//	case 'B':
//		printf("[80-90)");
//		break;
//	case'C':
//		printf("[70-80)");
//		break;
//	case'D':
//		printf("[60-70)");
//		break;
//	case'E':
//		printf("[0-60)");
//		break;
//	default:
//	printf("ERROR");
//	}
//	return 0;
//}
//int main()
//{
//	char str[1000];
//	gets(str);
//	int len = strlen(str);
//	int i = 0;
//	for (i = 0; i < len; i++)
//	{
//		if (str[i] <= 'Z' && str[i] >= 'A')
//		{
//			str[i] += 32;
//			continue;
//		}
//		if (str[i] <= 'z' && str[i] >= 'a')
//		{
//			str[i] -= 32;
//			continue;
//		}
//		if (str[i] <= '9' && str[i] >= '0')
//		{
//			str[i] += 1;
//		}
//	}
//	puts(str);
//	return 0;
//}
//int main()
//{
//	int m, n;
//	scanf("%d%d", &m, &n);
//	int i = m;
//	int flag = 0;
//	
//	while (i >= m && i < n)
//	{
//		int a, b, c;
//		a = i / 100;
//		b = i / 10 - 10 * a;
//		c = i % 10;
//		
//		if (a * a * a + b * b * b + c * c * c == i)
//		{
//			if (flag == 0)
//			{
//				flag = 1;
//			}
//			else
//			{
//				printf(", ");
//			}
//			printf("%d", i);
//		}
//		i++;
//	}
//	return 0;
//}
//typedef struct
//{
//	double je;
//	double dj;
//	double hj;
//	double sswr;
//}sc;
//int main()
//{
//	double sum = 0;
//	char str[10];
//	while (scanf("%s", str)!=EOF)
//	{
//		sc sc1;
//		scanf("%lf%lf", &(sc1.je), &(sc1.dj));
//		sc1.hj = sc1.dj * sc1.je;
//		sc1.hj = sc1.hj * 10;
//		sc1.sswr = ((int)(sc1.hj + 0.5)) / 10.0;
//		
//		sum += sc1.sswr;
//		printf("%.1lf", sc1.sswr);
//	}
//	printf("%.1lf", sum);
//	return 0;
//}
//int main()
//{
//	int a, b, x, y;
//	
//	while (scanf("%d%d%d%d", &a, &b, &x, &y) != EOF)
//	{
//		double num = ((double)x * x) / (a * a)+ ((double)y * y) / (b * b);
//		if (num > 1)
//		{
//			printf("out ellipse\n");
//		}
//		else
//		{
//			printf("in ellipse\n");
//		}
//	}
//	return 0;
//}
//typedef struct
//{
//	char name[100];
//	int n;
//}gs;
//
//int main()
//{
//	int num = 0;
//	scanf("%d", &num);
//	gs* gss = (gs*)malloc(sizeof(gs) * num);
//	int i = 0;
//	int n = num;
//	while (num--)
//	{
//		scanf("%s", gss[i].name);
//		scanf("%d", &(gss[i].n));
//		i++;
//	}
//	int j = 0;
//	for (i = 0; i < n; i++)
//	{
//		for (j = 0; j < n - i - 1; j++)
//		{
//			if (gss[j].n > gss[j + 1].n)
//			{
//				gs swap = gss[j];
//				gss[j] = gss[j + 1];
//				gss[j + 1] = swap;
//			}
//		}
//	}
//	for (i = 0; i < n; i++)
//	{
//		printf("%s:%d\n", gss[i].name, gss[i].n);
//	}
//
//
//	return 0;
//}
//int main()
//{
//	int count = 0;
//	scanf("%d", &count);
//	while (count--)
//	{
//		int m, n;
//		scanf("%d%d", &m, &n);
//		int arr[10][10];
//		int i, j;
//		for (i = 0; i < m; i++)
//		{
//			for (j = 0; j < n; j++)
//			{
//				scanf("%d", &arr[i][j]);
//			}
//		}
//		int hmax = arr[0][0];
//		int maxi=0, maxj=0;
//		int flag = 0;
//		for (i = 0; i < m; i++)
//		{
//			
//			for (j = 0; j < n; j++)
//			{
//				if (arr[i][j] > hmax)
//				{
//					hmax = arr[i][j];
//					maxi = i;
//					maxj = j;
//				}
//			}
//			int k = 0;
//			for(k=0;k<m;k++)
//			{
//				if (arr[maxi][maxj] > arr[k][maxj])
//				{
//					flag = 1;
//					break;
//				}
//			}
//			if (flag == 0)
//			{
//				break;
//			}
//		}
//		if (flag == 0)
//		{
//			printf("(%d,%d)%d\n", maxi, maxj, arr[maxi][maxj]);
//		}
//		else
//		{
//			printf("NONE\n");
//		}
//	}
//	return 0;
//}
/*int main()
{
	int r = 0;
	int c = 0;
	scanf("%d%d", &r, &c);
	char* arr = (char*)malloc(sizeof(char) * r);
	int i = 0;
	for (i = 0; i < c; i++)
	{
		arr[]
	}
		
	
	
	
}*/
int main2()
{
	char str[1000];
	gets(str);

	int len = strlen(str);
	int i = 0;
	int count = 1;
	for (i = 0; i < len; i++)
	{
		if (str[i] == ' ' && str[i + 1] != ' ')
		{
			count++;
		}

	}
	if (len == 0)
		count = 0;
	printf("%d", count);
	return 0;
}
int main1()
{
	int n = 0;
	scanf("%d", &n);
	int count = 0;
	while (n)
	{
		n /= 10;
		count++;
	}
	printf("%d", count);
	return 0;
}
